package com.lagou.task10.test;

/**
 * 定义一个长度为[16][16]的整型二维数组并输入所有位置的元素值，分别实现二维数组中所有行和所有列中所有元素的累加和并打印。
 * 再分别实现二维数组中左上角到右下角和右上角到左下角所有元素的累加和并打印。
 */
public class TwoDimensionalArray {

    public static void main(String[] args) {

        int[][] arr = new int[16][16];
        for (int i = 0; i < arr.length; i++) {
            for (int j = 0; j < arr[i].length; j++) {
                arr[i][j] = (int)(Math.random()*10);//为了界面美观，只展示各位数数据
            }
        }

        System.out.println("二维数组展示----------");
        for (int i = 0; i < arr.length; i++) {
            for (int j = 0; j < arr[i].length; j++) {
                System.out.print(arr[i][j]+"\t");
            }
            System.out.println();
        }

        System.out.println("所有元素累计和："+getSum(arr));
        System.out.println("左上角到右下角累加和："+getTopLeftCornerSum(arr));
        System.out.println("右上角到左下角累加和："+getTopRightCornerSum(arr));

    }

    //获取所有元素累加和
    private static int  getSum(int[][] arr){
        int sum = 0;
        for (int i = 0; i < arr.length; i++) {
            for (int j = 0; j < arr[i].length; j++) {
                sum+= arr[i][j];
            }
        }
        return sum;
    }

     /**
     * 获取右上角左下角和
     * i= j
     *将对应位置数据重新打印展示
     * @param arr
     * @return
     */
    private static int  getTopLeftCornerSum(int[][] arr){
        int sum = 0;
        for (int i = 0; i < arr.length; i++) {
            sum+= arr[i][i];
        }
        return sum;
    }


    /**
     *
     * @param arr
     * @return
     */
    private static int  getTopRightCornerSum(int[][] arr){
        int sum = 0;
        for (int i = 0; i < arr.length; i++) {
            sum+= arr[i][15-i];
        }
        return sum;
    }



}
